package com.hongxin.nw.netty.mq_info.domain;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;

/**
 * 充电桩上报BMS信息
 * 1.进入直流充电阶段时，上报此报文
 * 2.在充电过程中，目前暂时先按30s上报一次
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CMD302 {

    private String machineId = "";

    /**
     * 报文次序计数
     * 从1开始计数，溢出后重新从1开始计数
     */
    private String messageCounter = "";

    private String interfaceNumber = "";

    private String cpOrderId = "";

    /**
     *
     */
    private String cpProtocolVersion = "";

    /**
     *
     */
    private String bmsProtocolVersion = "";

    /**
     * 电池类型
     * 电池类型，01H：铅酸电池；02H：镍氢电池；03H：
     * 磷酸铁锂电池；04H：锰酸锂电池；05H：钴酸锂电
     * 池；06H：三元材料电池；07H：聚合物锂离子电池；
     * 08H：钛酸锂电池；FFH：其他电池
     */
    private String batteryType = "";

    /**
     * 最高允许温度
     * 数据分辨率：1ºC/位，-50 ºC 偏移量（正确数值=收到的数值+偏移量）；
     * 数据范围：-50ºC~+200 ºC
     */
    private String maxTemperatureLimit = "";

    /**
     * BMS 最高允许充电电压
     * 数据分辨率： 0.1 V /位，0 V 偏移量（正确数值=收到的数值+偏移量）
     */
    private String bmsMaxChargingVoltage = "";

    /**
     * 单体最高允许充电电压
     * 数据分辨率：0.01 V/位，0 V 偏移量（正确数值=收到的数值+偏移量）； 数据范围：
     * 0~24 V
     */
    private String singleMaxChargingVoltage = "";

    /**
     * 最高允许充电电流
     * 数据分辨率：0.1 A/位；-400A 偏移；
     * 数据范围： -400.0A~0.0A
     */
    private String bmsMaxChargingCurrent = "";

    /**
     * 整车动力蓄电池额定总电压
     * 数据分辨率：0.1 V/位；0V 偏移
     */
    private String ratedVoltageOfVehiclePowerBattery = "";

    /**
     * 整车动力蓄电池当前电压
     * 数据分辨率：0.1 V/位；0V 偏移
     */
    private String currenVoltageOfVehiclePowerBattery = "";

    /**
     * 整车动力蓄电池额定容量
     * 数据分辨率：0.1 Ah /位，0 Ah 偏移量（正确数值=收到的数值+偏移量）
     */
    private String ratedCapacityOfVehiclePowerBattery = "";

    /**
     * 整车动力蓄电池标称能量
     * 数据分辨率：0.1 kW/位，0 kW 偏移量（正确数值=收到的数值+偏移量）；
     * 数据范围：0~1000 kW；
     */
    private String nominalEnergyOfVehiclePowerBattery = "";

    /**
     * 整车动力蓄电池荷电状态
     * 数据分辨率： 0.1%/位， 0%偏移量（正确数值=收到的数值+偏移量）；
     * 数据范围： 0~100%；
     */
    private String chargingStateOfVehiclePowerBattery = "";

    /**
     * 充电机最高输出电压
     * 数据分辨率：0.1 V/位；0V 偏移
     */
    private String maxOutputVoltageOfChargePile = "";


    /**
     * 充电机最低输出电压
     * 数据分辨率：0.1 V/位；0V 偏移
     */
    private String minOutputVoltageOfChargePile = "";

    /**
     * 充电机最大输出电流
     * 数据分辨率：0.1 A/位；
     * -400A 偏移数据范围： -400.0A~0.0A
     */
    private String maxOutputCurrentOfChargePile = "";

    /**
     * 充电机最小输出电流
     * 数据分辨率：0.1 A/位；
     * -400A 偏移数据范围： -400.0A~0.0A
     */
    private String minOutputCurrentOfChargePile = "";

    /**
     * 车辆识别码VIN, ASCII
     */
    @JSONField(name="VIN")
    private String VIN = "";

    /**
     * 充电输出电压
     * 数据分辨率：0.1 V/位，0 V 偏移量（正确数值=收到的数值+偏移量）；数据范围：0.0 V~950.0 V
     */
    private String outputVoltageOfChargePile = "";

    /**
     * 充电输出电流
     * 数据分辨率：0.1 A/位；-400A 偏移；数据范围：-400.0 A~0.0 A
     */
    private String outputCurrentOfChargePile = "";

    /**
     * SOC
     * 数据分辨率：1%/位，0%偏移量（正确数值=收到的数值+偏移量）；数据范围：0%~100%
     */
    @JSONField(name="SOC")
    private String SOC = "";

    /**
     * 电池组最低温度
     * 数据分辨率：0.1 ℃/位，-50 ℃偏移量（正确数值=收到的数值+偏移量）；数据范围：-50.0 ℃~
     * +200.0 ℃
     */
    private String minTempOfBatteryPack = "";

    /**
     * 电池组最高温度
     * 数据分辨率：0.1 ℃/位，-50 ℃偏移量（正确数值=收到的数值+偏移量）；数据范围：-50.0 ℃~
     * +200.0 ℃
     */
    private String maxTempOfBatteryPack = "";


    /**
     * 单体电池最高电压
     * 数据分辨率：0.01 V/位，0 V 偏移量（正确数值=收到的数值+偏移量）；数据范围 0.00 V~24.00 V
     */
    private String maxVoltageOfSingleBattery = "";


    /**
     * 单体电池最低电压
     * 数据分辨率：0.01 V/位，0 V 偏移量（正确数值=收到的数值+偏移量）；数据范围 0.00 V~24.00 V
     */
    private String minVoltageOfSingleBattery = "";

    /**
     * 充电机环境温度
     * 数据分辨率：0.1 ℃/位，-50 ℃偏移量（正确数值=收到的数值+偏移量）；
     * 数据范围：-50.0 ℃~+90.0 ℃
     */
    private String ambientTempOfChargePile = "";

    /**
     * 充电导引电压
     * 数据分辨率：0.01 V/位，0 V 偏移量（正确数值=收到的数值+偏移量）；数据范围 0.00 V~30.00 V
     */
    private String voltageOfChargingGuidance = "";

    /**
     * BMS 需求电压
     * 数据分辨率：0.1 V/位，0 V 偏移量（正确数值=收到的数值+偏移量）；数据范围：0.0 V~950.0 V
     */
    private String voltageOfBMSRequired = "";

    /**
     * BMS 需求电流
     * 数据分辨率：0.1 A/位；-400A 偏移；数据范围：-400.0 A~0.0 A
     */
    private String currentOfBMSRequired = "";

    /**
     * 充电模式
     * 1恒压充电
     * 2恒流充电
     */
    private String chargingMode = "";

    /**
     * BMS 充电电压测量值
     * 数据分辨率：0.1 V/位，0 V 偏移量（正确数值=收到的数值+偏移量）；数据范围：0.0 V~950.0 V
     */
    private String voltageMeasurementOfBMS = "";

    /**
     * BMS 充电电流测量值
     * 数据分辨率：0.1 A/位；-400A 偏移；数据范围：-400.0 A~0.0 A
     */
    private String currentMeasurementOfBMS = "";


    /**
     * 估算剩余充电时间
     * 数据分辨率：1 min/位，0 min 偏移量（正确数值=收到的数值+偏移量）；数据范围：0~600 min
     */
    private String remainTimeOfChargingEstimated = "";

    /**
     * 充电枪温度1-4
     * 数据分辨率：1 ℃/位，-50 ℃偏移量（正确数值=收到的数值+偏移量）；数据范围：-50.0 ℃~
     * +90.0 ℃
     */
    private String tempOfChargingInterface = "";

    /**
     * 工作状态
     * 0-空闲中
     * 1-正准备开始充电
     * 2-充电进行中
     * 3-充电结束
     * 4-启动失败
     * 5-预约状态
     * 6-系统故障(不能给汽车充电)
     * 7-充电枪被占用（双枪充电机只能用单枪时，不能用的另一枪报此状态）
     * 8-快充满（SOC大于等于设定的块充满SOC值时，使用此状态）
     * 9-已充满（SOC等于100%，使用此状态）
     */
    private String workingState = "";

    /**
     * 交流A相充电电压
     */
    private String voltageACA= "";

    /**
     * 交流B相充电电压
     */
    private String voltageACB= "";

    /**
     *交流C相充电电压*/
    private String voltageACC= "";

    /**
     *交流A相充电电流*/
    private String currentACA= "";

    /**
     *交流B相充电电流*/
    private String currentACB= "";

    /**
     *交流C相充电电流*/
    private String currentACC= "";

    /**
     * 设备类型
     */
    private String  equipType="";

    public String getEquipType() {
        return equipType;
    }

    public void setEquipType(String equipType) {
        this.equipType = equipType;
    }

    /**
     * 连接确认开关状态	1：M_SP_NA_1	BIN码	1Byte	布尔型, 变化上传;0关，1开
     */
    private String connectorState= "";

    public String getConnectorState() {
        return connectorState;
    }

    public void setConnectorState(String connectorState) {
        this.connectorState = connectorState;
    }

    public String getVoltageACA() {
        return voltageACA;
    }

    public void setVoltageACA(String voltageACA) {
        this.voltageACA = voltageACA;
    }

    public String getVoltageACB() {
        return voltageACB;
    }

    public void setVoltageACB(String voltageACB) {
        this.voltageACB = voltageACB;
    }

    public String getVoltageACC() {
        return voltageACC;
    }

    public void setVoltageACC(String voltageACC) {
        this.voltageACC = voltageACC;
    }

    public String getCurrentACA() {
        return currentACA;
    }

    public void setCurrentACA(String currentACA) {
        this.currentACA = currentACA;
    }

    public String getCurrentACB() {
        return currentACB;
    }

    public void setCurrentACB(String currentACB) {
        this.currentACB = currentACB;
    }

    public String getCurrentACC() {
        return currentACC;
    }

    public void setCurrentACC(String currentACC) {
        this.currentACC = currentACC;
    }

    public String getWorkingState() {
        return workingState;
    }

    public void setWorkingState(String workingState) {
        this.workingState = workingState;
    }

    public String getMachineId() {
        return machineId;
    }

    public void setMachineId(String machineId) {
        this.machineId = machineId;
    }

    public String getMessageCounter() {
        return messageCounter;
    }

    public void setMessageCounter(String messageCounter) {
        this.messageCounter = messageCounter;
    }

    public String getInterfaceNumber() {
        return interfaceNumber;
    }

    public void setInterfaceNumber(String interfaceNumber) {
        this.interfaceNumber = interfaceNumber;
    }

    public String getCpOrderId() {
        return cpOrderId;
    }

    public void setCpOrderId(String cpOrderId) {
        this.cpOrderId = cpOrderId;
    }

    public String getCpProtocolVersion() {
        return cpProtocolVersion;
    }

    public void setCpProtocolVersion(String cpProtocolVersion) {
        this.cpProtocolVersion = cpProtocolVersion;
    }

    public String getBmsProtocolVersion() {
        return bmsProtocolVersion;
    }

    public void setBmsProtocolVersion(String bmsProtocolVersion) {
        this.bmsProtocolVersion = bmsProtocolVersion;
    }

    public String getBatteryType() {
        return batteryType;
    }

    public void setBatteryType(String batteryType) {
        this.batteryType = batteryType;
    }

    public String getMaxTemperatureLimit() {
        return maxTemperatureLimit;
    }

    public void setMaxTemperatureLimit(String maxTemperatureLimit) {
        this.maxTemperatureLimit = maxTemperatureLimit;
    }

    public String getBmsMaxChargingVoltage() {
        return bmsMaxChargingVoltage;
    }

    public void setBmsMaxChargingVoltage(String bmsMaxChargingVoltage) {
        this.bmsMaxChargingVoltage = bmsMaxChargingVoltage;
    }

    public String getSingleMaxChargingVoltage() {
        return singleMaxChargingVoltage;
    }

    public void setSingleMaxChargingVoltage(String singleMaxChargingVoltage) {
        this.singleMaxChargingVoltage = singleMaxChargingVoltage;
    }

    public String getBmsMaxChargingCurrent() {
        return bmsMaxChargingCurrent;
    }

    public void setBmsMaxChargingCurrent(String bmsMaxChargingCurrent) {
        this.bmsMaxChargingCurrent = bmsMaxChargingCurrent;
    }

    public String getRatedVoltageOfVehiclePowerBattery() {
        return ratedVoltageOfVehiclePowerBattery;
    }

    public void setRatedVoltageOfVehiclePowerBattery(String ratedVoltageOfVehiclePowerBattery) {
        this.ratedVoltageOfVehiclePowerBattery = ratedVoltageOfVehiclePowerBattery;
    }

    public String getCurrenVoltageOfVehiclePowerBattery() {
        return currenVoltageOfVehiclePowerBattery;
    }

    public void setCurrenVoltageOfVehiclePowerBattery(String currenVoltageOfVehiclePowerBattery) {
        this.currenVoltageOfVehiclePowerBattery = currenVoltageOfVehiclePowerBattery;
    }

    public String getRatedCapacityOfVehiclePowerBattery() {
        return ratedCapacityOfVehiclePowerBattery;
    }

    public void setRatedCapacityOfVehiclePowerBattery(String ratedCapacityOfVehiclePowerBattery) {
        this.ratedCapacityOfVehiclePowerBattery = ratedCapacityOfVehiclePowerBattery;
    }

    public String getNominalEnergyOfVehiclePowerBattery() {
        return nominalEnergyOfVehiclePowerBattery;
    }

    public void setNominalEnergyOfVehiclePowerBattery(String nominalEnergyOfVehiclePowerBattery) {
        this.nominalEnergyOfVehiclePowerBattery = nominalEnergyOfVehiclePowerBattery;
    }

    public String getChargingStateOfVehiclePowerBattery() {
        return chargingStateOfVehiclePowerBattery;
    }

    public void setChargingStateOfVehiclePowerBattery(String chargingStateOfVehiclePowerBattery) {
        this.chargingStateOfVehiclePowerBattery = chargingStateOfVehiclePowerBattery;
    }

    public String getMaxOutputVoltageOfChargePile() {
        return maxOutputVoltageOfChargePile;
    }

    public void setMaxOutputVoltageOfChargePile(String maxOutputVoltageOfChargePile) {
        this.maxOutputVoltageOfChargePile = maxOutputVoltageOfChargePile;
    }

    public String getMinOutputVoltageOfChargePile() {
        return minOutputVoltageOfChargePile;
    }

    public void setMinOutputVoltageOfChargePile(String minOutputVoltageOfChargePile) {
        this.minOutputVoltageOfChargePile = minOutputVoltageOfChargePile;
    }

    public String getMaxOutputCurrentOfChargePile() {
        return maxOutputCurrentOfChargePile;
    }

    public void setMaxOutputCurrentOfChargePile(String maxOutputCurrentOfChargePile) {
        this.maxOutputCurrentOfChargePile = maxOutputCurrentOfChargePile;
    }

    public String getMinOutputCurrentOfChargePile() {
        return minOutputCurrentOfChargePile;
    }

    public void setMinOutputCurrentOfChargePile(String minOutputCurrentOfChargePile) {
        this.minOutputCurrentOfChargePile = minOutputCurrentOfChargePile;
    }

    public String getVIN() {
        return VIN;
    }

    public void setVIN(String VIN) {
        this.VIN = VIN;
    }

    public String getOutputVoltageOfChargePile() {
        return outputVoltageOfChargePile;
    }

    public void setOutputVoltageOfChargePile(String outputVoltageOfChargePile) {
        this.outputVoltageOfChargePile = outputVoltageOfChargePile;
    }

    public String getOutputCurrentOfChargePile() {
        return outputCurrentOfChargePile;
    }

    public void setOutputCurrentOfChargePile(String outputCurrentOfChargePile) {
        this.outputCurrentOfChargePile = outputCurrentOfChargePile;
    }

    public String getSOC() {
        return SOC;
    }

    public void setSOC(String SOC) {
        this.SOC = SOC;
    }

    public String getMinTempOfBatteryPack() {
        return minTempOfBatteryPack;
    }

    public void setMinTempOfBatteryPack(String minTempOfBatteryPack) {
        this.minTempOfBatteryPack = minTempOfBatteryPack;
    }

    public String getMaxTempOfBatteryPack() {
        return maxTempOfBatteryPack;
    }

    public void setMaxTempOfBatteryPack(String maxTempOfBatteryPack) {
        this.maxTempOfBatteryPack = maxTempOfBatteryPack;
    }

    public String getMaxVoltageOfSingleBattery() {
        return maxVoltageOfSingleBattery;
    }

    public void setMaxVoltageOfSingleBattery(String maxVoltageOfSingleBattery) {
        this.maxVoltageOfSingleBattery = maxVoltageOfSingleBattery;
    }

    public String getMinVoltageOfSingleBattery() {
        return minVoltageOfSingleBattery;
    }

    public void setMinVoltageOfSingleBattery(String minVoltageOfSingleBattery) {
        this.minVoltageOfSingleBattery = minVoltageOfSingleBattery;
    }

    public String getAmbientTempOfChargePile() {
        return ambientTempOfChargePile;
    }

    public void setAmbientTempOfChargePile(String ambientTempOfChargePile) {
        this.ambientTempOfChargePile = ambientTempOfChargePile;
    }

    public String getVoltageOfChargingGuidance() {
        return voltageOfChargingGuidance;
    }

    public void setVoltageOfChargingGuidance(String voltageOfChargingGuidance) {
        this.voltageOfChargingGuidance = voltageOfChargingGuidance;
    }

    public String getVoltageOfBMSRequired() {
        return voltageOfBMSRequired;
    }

    public void setVoltageOfBMSRequired(String voltageOfBMSRequired) {
        this.voltageOfBMSRequired = voltageOfBMSRequired;
    }

    public String getCurrentOfBMSRequired() {
        return currentOfBMSRequired;
    }

    public void setCurrentOfBMSRequired(String currentOfBMSRequired) {
        this.currentOfBMSRequired = currentOfBMSRequired;
    }

    public String getChargingMode() {
        return chargingMode;
    }

    public void setChargingMode(String chargingMode) {
        this.chargingMode = chargingMode;
    }

    public String getVoltageMeasurementOfBMS() {
        return voltageMeasurementOfBMS;
    }

    public void setVoltageMeasurementOfBMS(String voltageMeasurementOfBMS) {
        this.voltageMeasurementOfBMS = voltageMeasurementOfBMS;
    }

    public String getCurrentMeasurementOfBMS() {
        return currentMeasurementOfBMS;
    }

    public void setCurrentMeasurementOfBMS(String currentMeasurementOfBMS) {
        this.currentMeasurementOfBMS = currentMeasurementOfBMS;
    }

    public String getRemainTimeOfChargingEstimated() {
        return remainTimeOfChargingEstimated;
    }

    public void setRemainTimeOfChargingEstimated(String remainTimeOfChargingEstimated) {
        this.remainTimeOfChargingEstimated = remainTimeOfChargingEstimated;
    }

    public String getTempOfChargingInterface() {
        return tempOfChargingInterface;
    }

    public void setTempOfChargingInterface(String tempOfChargingInterface) {
        this.tempOfChargingInterface = tempOfChargingInterface;
    }
}
